#ifndef COLAS_H_
#define COLAS_H_

#include "structs_commons.h"



struct infoLista{
	char idPPD[30];
	int sockPPD;
	pthread_t idThread;
	int sincronizado;//1 si el disco esta sincronizado, 0 si esta sin sincronizar aun.
	int cantPed;//cantidad de pedidos que tiene el disco(es la cantidad de nodos que tiene en la cola)
	struct nodoCola* iniCola;
	struct nodoCola* finCola;
};


struct nodoLista{
	struct infoLista data;
	struct nodoLista *sgte;
};

//en la cola se almacenan todos los pedidos que tiene el planificador
struct nodoCola{
	int socketFS;
	stPEscrituraSector sector;
	int tipoPedido;
	struct nodoCola *sgte;
};

typedef struct nodoLista nodoLista;
typedef struct nodoCola nodoCola;

//nodoLista *InsertarDisco(nodoLista **apuntador, int socket, char *idDisco);

//retorna 0 si no pertenece y 1 si pertenece
int Pertenece(char *elemento);

int InsertarPedido(nodoCola **finCola, stPEscrituraSector *sector, int tipoPedido, int sock);


void AgregarDisco(nodoLista *newDev);

void EncolarPedido(nodoLista *lista, int pedido, int tipoPedido, int socket);

void ReacomodarPedidos(void);

nodoLista *glob_listaDiscos;


#endif /* COLAS_H_ */
